package org.example.me.handler.context;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * Excel扩展上下文
 * 用于存储文件上下文映射关系，支持多文件导出场景
 * 扩展了基础Excel上下文，增加了对多文件导出的支持
 */
@Data
public class ExcelContextExtend {

    /**
     * 基础Excel上下文
     * 包含导出任务的基本信息
     */
    private ExcelContext excelContext;

    /**
     * 文件上下文映射（文件名 -> 文件上下文）
     * 用于管理多个文件的上下文信息
     */
    private Map<String, FileContext> fileContextMap;

    /**
     * 构造函数
     * @param excelContext 基础Excel上下文
     */
    public ExcelContextExtend(ExcelContext excelContext) {
        this.excelContext = excelContext;
        this.fileContextMap = new HashMap<>();
    }

    /**
     * 添加文件上下文
     * @param fileContext 文件上下文
     */
    public void addFileContext(FileContext fileContext) {
        if (this.fileContextMap == null) {
            this.fileContextMap = new HashMap<>();
        }
        this.fileContextMap.put(fileContext.getFileName(), fileContext);
    }
}